#include "gestionnaireimages.h"

//--------------------- Constructeurs et destructeur -------------------

//----------------------------------------------------------------------
//--------------------- Méthodes ---------------------------------------

/*
 * Fonction permettant d'importer dans les ressources
 * de l'application une image du chemin
 * @param chemin : chemin de l'image à importer.
 */
void GestionnaireImages::importerImage(QString chemin)
{
    QString mw_cheminExecutable = QCoreApplication::applicationDirPath();
    QString  mw_cheminDossierStockage = mw_cheminExecutable + "/ressources/images" ;

    //Recuperation des informations sur le fichier (nom du fichier + extension)
    QFileInfo informationFichier(chemin);
    QString nomCompletFichier = informationFichier.fileName();

    //Creation du dossier de stockage à la racine du dossier de projet
    QDir cheminDossierStockage(mw_cheminDossierStockage);
    if (!cheminDossierStockage.exists())
    {
        cheminDossierStockage.mkpath(mw_cheminDossierStockage);
    }

    //Creation du chemin vers lequel on va stocker l'image sélectionnée
    QString cheminStockageImage = mw_cheminDossierStockage + nomCompletFichier;

    //Copie du fichier dans le dossier de stockage de l'application
    QFile file(chemin);
    file.copy(cheminStockageImage);
}

/*
 * Fonction permettant de récupérer tous
 * les noms des images des ressources
 * @return QList<QString> : liste des noms des images dans notre dossier de ressources
 */
QList<QString> GestionnaireImages::getListeImages()
{
    QString mw_cheminExecutable = QCoreApplication::applicationDirPath();
    QString  mw_cheminDossierStockage = mw_cheminExecutable + "/ressources/images" ;

    QStringList filtreFichier;
    filtreFichier << "*.png" << "*.gif" << "*.jpg" << "*.jpeg";

    QDirIterator parcoursDossierStockage (mw_cheminDossierStockage, filtreFichier, QDir::Files); //Iterateur nécessaire au parcours du dossier de stockage
    QStringList listeFichier; //contient la liste des images contenues dans le dossier de stockage
    while(parcoursDossierStockage.hasNext()) //on parcours le dossier de stockage
    {
        parcoursDossierStockage.next(); //on ajoute les images à la liste
        listeFichier << parcoursDossierStockage.fileName(); //on ajoute les images à la liste
    }

    return listeFichier;
}

/*
 * Fonction permettant de récupérer l'image spécifiée
 * @param nomImage : nom de l'image à renvoyer
 * @return QImage : image à renvoyer
 */
QImage& GestionnaireImages::getImage(QString nomImage, QString extention)
{
    QImage* retour = new QImage("/ressources/images/" + nomImage + "." + extention);
    return *retour;
}


//----------------------------------------------------------------------
//--------------------- Accesseurs -------------------------------------

//----------------------------------------------------------------------
//--------------------- Surcharge des opérateurs -----------------------

//----------------------------------------------------------------------

